package com.tinem.platform.module.starter.jpa.entity.pay;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;

/**
 * @author fzh
 * @version v1
 * @program: platform
 * @className OrderPayVirtual
 * @description 虚拟币订单支付记录表
 * @site
 * @company
 * @create 2021-11-24
 */
@Data
@Entity
@ToString
@DynamicInsert
@DynamicUpdate
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
@Table(name="t_order_pay_virtual")
@ApiModel("虚拟币订单支付记录表")
public class OrderPayVirtual implements Serializable,Cloneable{
    @Id
    @Column(name = "c_id",nullable=true)
    @ApiModelProperty(name = "id", value = "ID",required = true)
    private String id;

    @Column(name = "c_order_id",nullable=true)
    @ApiModelProperty(name = "orderId", value = "订单id",required = true)
    private String orderId;

    @Column(name = "c_pay_channel",nullable=true)
    @ApiModelProperty(name = "payChannel", value = "支付渠道id",required = true)
    private String payChannel;

    @Column(name = "c_account",nullable=true)
    @ApiModelProperty(name = "account", value = "接受账户",required = true)
    private String account;

    @Column(name = "c_number",nullable=true)
    @ApiModelProperty(name = "number", value = "接收货币数量",required = true)
    private java.math.BigDecimal number;

    @Column(name = "c_rate",nullable=true)
    @ApiModelProperty(name = "rate", value = "汇率",required = true)
    private java.math.BigDecimal rate;

    @Column(name = "c_pay_user_email",nullable=true)
    @ApiModelProperty(name = "payUserEmail", value = "支付用户邮箱",required = true)
    private String payUserEmail;

    @Column(name = "c_pay_user_phone_country",nullable=true)
    @ApiModelProperty(name = "payUserPhoneCountry", value = "支付用户手机号国家",required = true)
    private String payUserPhoneCountry;

    @Column(name = "c_pay_user_phone",nullable=true)
    @ApiModelProperty(name = "payUserPhone", value = "支付用户手机号",required = true)
    private String payUserPhone;

    @Column(name = "c_hash",nullable=false)
    @ApiModelProperty(name = "hash", value = "交易hash",required = false)
    private String hash;

    @Column(name = "c_remarks",nullable=false)
    @ApiModelProperty(name = "remarks", value = "交易备注",required = false)
    private String remarks;

    @Column(name = "c_money",nullable=false)
    @ApiModelProperty(name = "money", value = "实际收到金额（根据当天汇率由审核人员确认）",required = false)
    private java.math.BigDecimal money;

    @Column(name = "c_audit_name",nullable=false)
    @ApiModelProperty(name = "auditName", value = "审核人",required = false)
    private String auditName;

    @Column(name = "c_audit_phone",nullable=false)
    @ApiModelProperty(name = "auditPhone", value = "审核人电话",required = false)
    private String auditPhone;

    @Column(name = "c_audit_phone_country",nullable=false)
    @ApiModelProperty(name = "auditPhoneCountry", value = "审核人电话国家",required = false)
    private String auditPhoneCountry;
    @Enumerated(EnumType.STRING)
    @Column(name = "c_examine",nullable=false)
    @ApiModelProperty(name = "examine", value = "审核状态",required = false)
    private com.tinem.platform.module.pojo.enums.common.Examine examine;

    @Column(name = "c_examine_remarks",nullable=false)
    @ApiModelProperty(name = "examineRemarks", value = "审核备注",required = false)
    private String examineRemarks;

    @Version
    @Column(name = "c_revision",nullable=true)
    @ApiModelProperty(name = "revision", value = "乐观锁",required = false)
    private Integer revision;

    @Column(name = "c_created_by",nullable=true)
    @ApiModelProperty(name = "createdBy", value = "创建人",required = false)
    private String createdBy;

    @Column(name = "c_created_time",nullable=true,insertable = false,updatable = false)
    @ApiModelProperty(name = "createdTime", value = "创建时间",required = false)
    private Date createdTime;

    @Column(name = "c_updated_by",nullable=true)
    @ApiModelProperty(name = "updatedBy", value = "更新人",required = false)
    private String updatedBy;

    @Column(name = "c_updated_time",nullable=true,insertable = false,updatable = false)
    @ApiModelProperty(name = "updatedTime", value = "更新时间",required = false)
    private Date updatedTime;

}